<?php
abstract class work
{
    public function decode($str)
    {
        return json_decode($str,true);
    }
    abstract public function encode($val);//抽象的方法只能是公开的和受保护的，无法实例化，可以继承
}

class json extends work
{
    public function encode($val)
    {
        return json_encode($val);
    }
}
class str extends work
{
    public function encode($val)
    {
        //implode(规定数组元素之间放置的内容,要组合为字符串的数组。) 函数返回一个由数组元素组合成的字符串。
        return implode(',',$val);
    }
    public function decode($str)
    {
        //explode(必需。规定在哪里分割字符串。,必需。要分割的字符串。) 函数使用一个字符串分割另一个字符串，并返回由字符串组成的数组。
        return explode(',',$str);
    }
}
$arr=array(1,2,3,4);
$str=new str();
echo $str->encode($arr);//1,2,3,4
echo "<hr/>";
$string=$str->__construct($name,$chepai)encode($arr);//1,2,3,4
var_export($str->decode($string));//array ( 0 => '1', 1 => '2', 2 => '3', 3 => '4', )
echo "<hr/>";
$json=new json();
echo $json->encode($arr);//[1,2,3,4]
echo "<hr/>";
$jsonstr=$json->encode($arr);//[1,2,3,4]
var_export($json->decode($jsonstr));
